# Copyright 2020 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================

"""tbe ops"""
from .abs import _abs_tbe
from .inplace_add import _inplace_add_tbe
from .inplace_sub import _inplace_sub_tbe
from .abs_grad import _abs_grad_tbe
from .acos import _acos_tbe
from .acos_grad import _acos_grad_tbe
from .acosh import _acosh_tbe
from .acosh_grad import _acosh_grad_tbe
from .adam_apply_one_with_decay import _adam_apply_one_with_decay_tbe
from .apply_centered_rms_prop import _apply_centered_rms_prop_tbe
from .add_n import _add_n_tbe
from .add_n_ds import _add_n_ds_tbe
from .accumulate_n_v2 import _accumulate_n_v2_tbe
from .apply_ftrl import _apply_ftrl_tbe
from .apply_momentum import _apply_momentum_tbe
from .apply_adam import _apply_adam_tbe
from .apply_ada_max import _apply_ada_max_tbe
from .apply_adadelta import _apply_adadelta_tbe
from .apply_adagrad import _apply_adagrad_tbe
from .apply_adagrad_v2 import _apply_adagrad_v2_tbe
from .apply_add_sign import _apply_add_sign_tbe
from .apply_power_sign import _apply_power_sign_tbe
from .apply_gradient_descent import _apply_gradient_descent_tbe
from .apply_proximal_gradient_descent import _apply_proximal_gradient_descent_tbe
from .sparse_apply_ftrl_v2 import _sparse_apply_ftrl_v2_tbe
from .sparse_apply_adagrad_v2 import _sparse_apply_adagrad_v2_tbe
from .approximate_equal import _approximate_equal_tbe
from .adam_apply_one import _adam_apply_one_tbe
from .assign import _assign_tbe
from .assign_add import _assign_add_tbe
from .assign_sub import _assign_sub_tbe
from .batch_matmul import _batch_matmul_tbe
from .batchnorm import _batch_norm_tbe
from .batchnorm_grad import _batch_norm_grad_tbe
from .bias_add import _bias_add_tbe
from .bias_add_grad import _bias_add_grad_tbe
from .cast import _cast_tbe
from .cast_ds import _cast_ds_tbe
from .conv2d import _conv2d_tbe
from .conv2d_backprop_filter import _conv2d_backprop_filter_tbe
from .conv2d_backprop_input import _conv2d_backprop_input_tbe
from .confusion_mul_grad import _confusion_mul_grad_tbe
from .dropout_do_mask import _dropout_do_mask_tbe
from .gelu import _gelu_tbe
from .gelu_grad import _gelu_grad_tbe
from .fast_gelu import _fast_gelu_tbe
from .fast_gelu_grad import _fast_gelu_grad_tbe
from .max_pool import _max_pool_tbe
from .max_pool_grad import _max_pool_grad_tbe
from .max_pool_grad_with_argmax import _max_pool_grad_with_argmax_tbe
from .max_pool_with_argmax import _max_pool_with_argmax_tbe
from .mul import _mul_tbe
from .mul_ds import _mul_ds_tbe
from .real_div import _real_div_tbe
from .real_div_ds import _real_div_ds_tbe
from .relu import _relu_tbe
from .relu_ds import _relu_ds_tbe
from .relu_grad import _relu_grad_tbe
from .relu6 import _relu6_tbe
from .relu6_grad import _relu6_grad_tbe
from .relu_v2 import _relu_v2_tbe
from .relu_grad_v2 import _relu_grad_v2_tbe
from .softmax_cross_entropy_with_logits import _softmax_cross_entropy_with_logits_tbe
from .sigmoid_cross_entropy_with_logits import _sigmoid_cross_entropy_with_logits_tbe
from .sigmoid_cross_entropy_with_logits_grad import _sigmoid_cross_entropy_with_logits_grad_tbe
from .tensor_add import _tensor_add_tbe
from .tensor_add_ds import _tensor_add_ds_tbe
from .trans_data import _trans_data_tbe
from .top_k import _top_k_tbe
from .matmul import _matmul_tbe
from .sub import _sub_tbe
from .sub_ds import _sub_ds_tbe
from .scatter_nd import _scatter_nd_tbe
from .scatter_nd_d import _scatter_nd_d_tbe
from .scatter_nd_add import _scatter_nd_add_tbe
from .scatter_nd_sub import _scatter_nd_sub_tbe
from .scatter_non_aliasing_add import _scatter_non_aliasing_add_tbe
from .reduce_mean import _reduce_mean_tbe
from .tile import _tile_tbe
from .atomic_addr_clean import _atomic_addr_clean_tbe
from .gather_v2 import _gather_v2_tbe
from .gather_v2_ds import _gather_v2_ds_tbe
from .gather_nd import _gather_nd_tbe
from .bn_training_reduce import _bn_training_reduce_tbe
from .bn_training_reduce_grad import _bn_training_reduce_grad_tbe
from .bn_training_update import _bn_training_update_tbe
from .bn_training_update_grad import _bn_training_update_grad_tbe
from .bn_infer import _bn_infer_tbe
from .bn_infer_grad import _bn_infer_grad_tbe
from .bn_inference import _bn_inference_tbe
from .reciprocal import _reciprocal_tbe
from .reverse_v2_d import _reverse_v2_d_tbe
from .rint import _rint_tbe
from .strided_slice_d import _strided_slice_d_tbe
from .strided_slice_grad_d import _strided_slice_grad_d_tbe
from .split_d import _split_d_tbe
from .exp import _exp_tbe
from .expm1 import _expm1_tbe
from .elu import _elu_tbe
from .elu_grad import _elu_grad_tbe
from .div import _div_tbe
from .div_ds import _div_ds_tbe
from .log import _log_tbe
from .xdivy import _xdivy_tbe
from .xlogy import _xlogy_tbe
from .floor_div import _floor_div_tbe
from .zeros_like import _zeros_like_tbe
from .neg import _neg_tbe
from .npu_clear_float_status import _npu_clear_float_status_tbe
from .npu_get_float_status import _npu_get_float_status_tbe
from .npu_alloc_float_status import _npu_alloc_float_status_tbe
from .one_hot import _one_hot_tbe
from .equal import _equal_tbe
from .equal_ds import _equal_ds_tbe
from .less import _less_tbe
from .less_equal import _less_equal_tbe
from .logical_and import _logical_and_tbe
from .logical_not import _logical_not_tbe
from .logical_or import _logical_or_tbe
from .reduce_max import _reduce_max_tbe
from .reduce_min import _reduce_min_tbe
from .reduce_sum import _reduce_sum_tbe
from .round import _round_tbe
from .tanh import _tanh_tbe
from .tanh_grad import _tanh_grad_tbe
from .softmax import _softmax_tbe
from .softsign import _softsign_tbe
from .softplus import _softplus_tbe
from .softplus_grad import _softplus_grad_tbe
from .softmax_grad_ext import _softmax_grad_ext_tbe
from .square import _square_tbe
from .square_ds import _square_ds_tbe
from .squared_difference import _squared_difference_tbe
from .sqrt import _sqrt_tbe
from .sqrt_ds import _sqrt_ds_tbe
from .sparse_apply_ftrl_d import _sparse_apply_ftrl_d
from .sparse_apply_ftrl_d_ds import _sparse_apply_ftrl_d_ds
from .sparse_apply_proximal_adagrad import _sparse_apply_proximal_adagrad
from .sparse_apply_proximal_adagrad_ds import _sparse_apply_proximal_adagrad_ds
from .apply_proximal_adagrad import _apply_proximal_adagrad
from .transpose_d import _transpose_d_tbe
from .truncate_div import _truncate_div_tbe
from .truncate_mod import _truncate_mod_tbe
from .unsorted_segment_sum import _unsorted_segment_sum_tbe
from .unsorted_segment_sum_ds import _unsorted_segment_sum_ds_tbe
from .unsorted_segment_prod import _unsorted_segment_prod_tbe
from .logsoftmax_grad import _logsoftmax_grad_tbe
from .logsoftmax import _logsoftmax_tbe
from .select import _select_tbe
from .pow import _pow_tbe
from .maximum import _maximum_tbe
from .minimum import _minimum_tbe
from .minimum_ds import _minimum_ds_tbe
from .minimum_grad import _minimum_grad_tbe
from .maximum_grad import _maximum_grad_tbe
from .concat import _concat_tbe
from .slice import _slice_tbe
from .sign import _sign_tbe
from .greater import _greater_tbe
from .clip_by_norm_no_div_sum import _clip_by_norm_no_div_sum_tbe
from .clip_by_value import _clip_by_value_tbe
from .layer_norm_beta_gamma_backprop import _layer_norm_beta_gamma_backprop_tbe
from .layer_norm import _layer_norm_tbe
from .layer_norm_grad import _layer_norm_grad_tbe
from .layer_norm_x_backprop import _layer_norm_x_backprop_tbe
from .l2_loss import _l2_loss_tbe
from .l2_normalize import _l2_normalize_tbe
from .l2_normalize_grad import _l2_normalize_grad_tbe
from .square_sum_v1 import _square_sum_v1_tbe
from .square_sum_v2 import _square_sum_v2_tbe
from .confusion_transpose_d import _confusion_transpose_d_tbe
from .confusion_softmax_grad import _confusion_softmax_grad_tbe
from .lamb_update_with_lr_v2 import _lamb_update_with_lr_v2_tbe
from .lamb_next_mv import _lamb_next_mv_tbe
from .lamb_next_mv_with_decay import _lamb_next_mv_with_decay_tbe
from .lamb_update_with_lr import _lamb_update_with_lr_tbe
from .rsqrt import _rsqrt_tbe
from .sigmoid import _sigmoid_tbe
from .sigmoid_grad import _sigmoid_grad_tbe
from .resize_nearest_neighbor import _resize_nearest_neighbor_tbe
from .resize_nearest_neighbor_grad import _resize_nearest_neighbor_grad_tbe
from .pad_d import _pad_d_tbe
from .pad_d_ds import _pad_d_ds_tbe
from .arg_max_with_value import _arg_max_with_value_tbe
from .arg_min_with_value import _arg_min_with_value_tbe
from .smooth_l1_loss import _smooth_l1_loss_tbe
from .smooth_l1_loss_grad import _smooth_l1_loss_grad_tbe
from .fused_mul_add import _fused_mul_add_tbe
from .fused_mul_add_n import _fused_mul_add_n_tbe
from .fused_mul_apply_momentum import _fused_mul_apply_momentum_tbe
from .fill import _fill_op_tbe
from .fill_ds import _fill_ds_op_tbe
from .erf import _erf_op_tbe
from .erfc import _erfc_op_tbe
from .depthwise_conv2d import _depthwise_conv2d_tbe
from .depthwise_conv2d_backprop_filter import _depthwise_conv2d_backprop_filter_tbe
from .depthwise_conv2d_backprop_input import _depthwise_conv2d_backprop_input_tbe
from .greater_equal import _greater_equal_tbe
from .not_equal import _not_equal_tbe
from .floor_mod import _floor_mod_tbe
from .scatter_nd_update import _scatter_nd_update_tbe
from .avg_pool import _avg_pool_tbe
from .avg_pool_grad import _avg_pool_grad_tbe
from .avg_pool_grad_vm import _avg_pool_grad_vm_tbe
from .ones_like import _ones_like_tbe
from .batch_to_space import _batch_to_space_tbe
from .space_to_batch import _space_to_batch_tbe
from .depth_to_space import _depth_to_space_tbe
from .space_to_depth import _space_to_depth_tbe
from .extract_image_patches import _extract_image_patches_tbe
from .sort import _sort_tbe
from .floor import _floor_tbe
from .ceil import _ceil_tbe
from .log1p import _log1p_tbe
from .resize_bilinear import _resize_bilinear_tbe
from .resize_bilinear_grad import _resize_bilinear_grad_tbe
from .flatten import _flatten_tbe
from .roi_align import _roi_align_tbe
from .roi_align_grad import _roi_align_grad_tbe
from .bounding_box_decode import _bounding_box_decode_tbe
from .bounding_box_encode import _bounding_box_encode_tbe
from .check_valid import _check_valid_tbe
from .iou import _iou_tbe
from .arg_max import _arg_max_tbe
from .nms_with_mask import _nms_with_mask_tbe
from .sgd import _sgd_tbe
from .lars_update import _lars_update_tbe
from .arg_min import _arg_min_tbe
from .bn_training_update_v2 import _bn_training_update_v2_tbe
from .bn_training_update_v3 import _bn_training_update_v3_tbe
from .square_sum_all import _square_sum_all_tbe
from .pack import _pack_tbe
from .unpack import _unpack_tbe
from .scatter_update import _scatter_update_tbe
from .scatter_update_ds import _scatter_update_ds_tbe
from .prelu import _prelu_tbe
from .prelu_grad import _prelu_grad_tbe
from .binary_cross_entropy import _binary_cross_entropy_tbe
from .binary_cross_entropy_grad import _binary_cross_entropy_grad_tbe
from .sin import _sin_tbe
from .cos import _cos_tbe
from .tan import _tan_tbe
from .cum_sum import _cum_sum_tbe
from .apply_rms_prop import _apply_rms_prop_tbe
from .cumprod import _cumprop_tbe
from .reduce_prod import _reduce_prod_tbe
from .reciprocal_grad import _reciprocal_grad_tbe
from .sqrt_grad import _sqrt_grad_tbe
from .sqrt_grad_ds import _sqrt_grad_ds_tbe
from .rsqrt_grad import _rsqrt_grad_tbe
from .flatten_grad import _flatten_grad_tbe
from .scatter_add import _scatter_add_tbe
from .scatter_add_ds import _scatter_add_ds_tbe
from .atan2 import _atan2_tbe
from .bessel_i0e import _bessel_i0e_tbe
from .bessel_i1e import _bessel_i1e_tbe
from .batch_to_space_nd import _batch_to_space_nd_tbe
from .space_to_batch_nd import _space_to_batch_nd_tbe
from .bitwise_and import _bitwise_and_tbe
from .bitwise_or import _bitwise_or_tbe
from .bitwise_xor import _bitwise_xor_tbe
from .reduce_all import _reduce_all_tbe
from .reduce_any import _reduce_any_tbe
from .sparse_apply_adagrad import _sparse_apply_adagrad_tbe
from .unsorted_segment_min import _unsorted_segment_min_tbe
from .unsorted_segment_max import _unsorted_segment_max_tbe
from .asin import _asin_tbe
from .asin_grad import _asin_grad_tbe
from .asinh import _asinh_tbe
from .asinh_grad import _asinh_grad_tbe
from .div_no_nan import _div_no_nan_tbe
from .atan import _atan_tbe
from .atan_grad import _atan_grad_tbe
from .atanh import _atanh_tbe
from .cosh import _cosh_tbe
from .sinh import _sinh_tbe
from .inv import _inv_tbe
from .inv_grad import _inv_grad_tbe
from .invert import _invert_tbe
from .basic_lstm_cell import _basic_lstm_cell_tbe
from .basic_lstm_cell_c_state_grad_v2 import _basic_lstm_cell_c_state_grad_tbe_v2
from .basic_lstm_cell_c_state_grad import _basic_lstm_cell_c_state_grad_tbe
from .basic_lstm_cell_weight_grad import _basic_lstm_cell_weight_grad_tbe
from .basic_lstm_cell_input_grad import _basic_lstm_cell_input_grad_tbe
from .dynamic_rnn import _dynamic_rnn_tbe
from .dynamic_gru_v2 import _dynamic_gru_v2_tbe
from .gru_v2_hidden_grad import _gru_v2_hidden_grad_tbe
from .lstm_input_grad import _lstm_input_grad_tbe
from .confusion_matrix import _confusion_matrix_tbe
from .broadcast_to import _broadcast_to_tbe
from .strided_read import _strided_read_tbe
from .strided_write import _strided_write_tbe
from .range import _range_tbe
from .fused_mul_add_n_l2loss import _fused_mul_add_n_l2loss_tbe
from .fused_mul_apply_momentum_extern import _fused_mul_apply_momentum_extern_tbe
from .lamb_next_right import _lamb_next_right_tbe
from .sparse_gather_v2 import _sparse_gather_v2_tbe
from .sparse_gather_v2_ds import _sparse_gather_v2_ds_tbe
from .data_format_dim_map import _data_format_dim_map_tbe
from .histogram_fixed_width import _histogram_fixed_width_tbe
from .tensor_scatter_update import _tensor_scatter_update_tbe
from .inplace_update import _inplace_update_tbe
from .splitv import _split_v_tbe
from .in_top_k import _in_top_k_tbe
from .lin_space import _lin_space_tbe
from .matrix_diag import _matrix_diag_tbe
from .matrix_diag_part import _matrix_diag_part_tbe
from .matrix_set_diag import _matrix_set_diag_tbe
from .lrn import _lrn_tbe
from .lrn_grad import _lrn_grad_tbe
from .scatter_max import _scatter_max_tbe
from .scatter_min import _scatter_min_tbe
from .scatter_sub import _scatter_sub_tbe
from .scatter_mul import _scatter_mul_tbe
from .scatter_div import _scatter_div_tbe
from .mod import _mod_tbe
from .max_pool_grad_grad import _max_pool_grad_grad_tbe
from .max_pool_grad_grad_with_argmax import _max_pool_grad_grad_with_argmax_tbe
from .tensor_move import _tensor_move_tbe
from .population_count import _population_count_tbe
from .parallel_concat import _parallel_concat_tbe
from .adam_apply_one_assign import _adam_apply_one_assign_tbe
from .adam_apply_one_with_decay_assign import _adam_apply_one_with_decay_assign_tbe
from .ifmr import _ifmr_tbe
from .acts_ulq import _acts_ulq_tbe
from .acts_ulq_input_grad import _acts_ulq_input_grad_tbe
from .act_ulq_clamp_min_grad import _act_ulq_clamp_min_grad_tbe
from .act_ulq_clamp_max_grad import _act_ulq_clamp_max_grad_tbe
from .wts_arq import _wts_arq_tbe
from .fake_quant_with_min_max_vars import _fake_quant_with_min_max_vars_tbe
from .fake_quant_with_min_max_vars_gradient import _fake_quant_with_min_max_vars_gradient_tbe
from .fake_quant_with_min_max_vars_per_channel import _fake_quant_with_min_max_vars_per_channel_tbe
from .fake_quant_with_min_max_vars_per_channel_gradient import _fake_quant_with_min_max_vars_per_channel_gradient_tbe
from .conv3d import _conv3d_tbe
from .conv3d_backprop_input import _conv3d_backprop_input_tbe
from .conv3d_backprop_filter import _conv3d_backprop_filter_tbe
from .conv3d_transpose import _conv3d_transpose_tbe
